import { ready, isAliPay } from './utils'

// 直接吊起分享
async function startShare({
  title = '',
  url = window.location.href,
  content = '',
  imageUrl,
  iconUrl = ''
}) {
  if (!isAliPay) return
  await ready()
  return new Promise(resolve => {
    AlipayJSBridge.call(
      'startShare',
      {
        // 当用户选择该数组内指定的分享渠道时，仅返回渠道名，而不是真正开始自动分享
        onlySelectChannel: [
          'Weixin',
          'WeixinTimeLine',
          'ALPContact',
          'ALPTimeLine',
          'ALPCommunity'
        ]
      },
      data => {
        // 通过onlySelectChannel屏蔽掉自动分享功能后，自行调用shareToChannel接口进行单独分享
        AlipayJSBridge.call(
          'shareToChannel',
          {
            name: data.channelName,
            param: {
              contentType: 'url', // 选填，目前支持支持"auto",text","image","url"格式（android分享组件不支持auto）
              title,
              content,
              iconUrl,
              imageUrl,
              url,
              captureScreen: false, // 是否分享当前页面的截图
              otherParams: {
                preContent: `#${title} ,全选拷贝本段文案后，打开支付宝#`,
                bizType: 'COMMON_CONFIG', // 吱口令独有参数
                btn2: '去看看', // 吱口令独有参数
                btn2A: url // 吱口令独有参数
              }
            }
          },
          result => {
            resolve(result)
          }
        )
      }
    )
  })
}

// 默认分享，监听右上角点击事件
export async function settingShare(shareData, title) {
  if (!isAliPay) return // 不是支付宝返回
  ready(() => {
    AlipayJSBridge.call('setOptionMenu', {
      title,
      redDot: '-1', // -1表示不显示，0表示显示红点，1-99表示在红点上显示的数字
      color: '#ffff6600' // 必须以＃开始ARGB颜色值
    })
    document.addEventListener(
      'optionMenu',
      function() {
        startShare(shareData)
      },
      false
    )
  })
}

// 支付宝分享
export default startShare
